﻿using System.ComponentModel;

namespace NP.BPMReportPlatform.CommonEnum
{
    /// <summary>
    /// 任务的通用状态（任务、活动、实例 的通用状态）
    /// Description 均为动词，将用于审批记录
    /// </summary>
    public enum TaskCommonStatus
    {
        /// <summary>
        /// 有异常
        /// </summary>
        [Description("有异常")]
        Exception = -2,

        /// <summary>
        /// 已终止
        /// </summary>
        [Description("终止")]
        Canceled = -1,

        /// <summary>
        /// 发起
        /// </summary>
        [Description("发起")]
        Start = 0,

        /// <summary>
        /// 重新发起
        /// </summary>
        [Description("重新发起")]
        ReStart = 9,

        /// <summary>
        /// 处理中
        /// </summary>
        [Description("处理中")]
        Processing = 1,

        /// <summary>
        /// 已完成
        /// </summary>
        [Description("通过")]
        Done = 2,

        /// <summary>
        /// 已拒绝
        /// </summary>
        [Description("拒绝")]
        Refused = 3,

        /// <summary>
        /// 退回发起人（逐级提交）
        /// </summary>
        [Description("退回发起人（逐级提交）")]
        RejectStart = 10,

        /// <summary>
        /// 退回步骤（逐级提交）
        /// </summary>
        [Description("退回步骤（逐级提交）")]
        RejectActivity = 11,

        /// <summary>
        /// 退回发起人（直接提交退回人）
        /// </summary>
        [Description("退回发起人（直接提交退回人）")]
        RejectStartDirect = 12,

        /// <summary>
        /// 退回步骤（直接提交退回人）
        /// </summary>
        [Description("退回步骤（直接提交退回人）")]
        RejectActivityDirect = 13,

        /// <summary>
        /// 转交
        /// </summary>
        [Description("转交")]
        Handover = 20,

        /// <summary>
        /// 后置加签
        /// </summary>
        [Description("后置加签")]
        ExtraAppend = 21,

        /// <summary>
        /// 前置加签
        /// </summary>
        [Description("前置加签")]
        ExtraInsert = 22,

        /// <summary>
        /// 发起人撤回
        /// </summary>
        [Description("发起人撤回")]
        RecallStart = 30,

        /// <summary>
        /// 审批人撤回
        /// </summary>
        [Description("审批人撤回")]
        RecallActivity = 31,

        /// <summary>
        /// 空审批人跳过
        /// </summary>
        [Description("空审批人跳过")]
        SkippedWhenEmptyResolver = 32,

        /// <summary>
        /// 相同审批人自动跳过（含与发起人相同）
        /// </summary>
        [Description("相同审批人自动跳过")]
        SkippedWhenSameApprover = 33,

        /// <summary>
        /// 干预（新增节点）
        /// </summary>
        [Description("管理员干预（新增节点）")]
        InterveneAddNode = 40,

        /// <summary>
        /// 管理员干预（跳转）
        /// </summary>
        [Description("管理员干预（跳转）")]
        InterveneJumpNode = 41,

        /// <summary>
        /// 管理员干预（修改审批人）
        /// </summary>
        [Description("管理员干预（修改审批人）")]
        InterveneChangeUsers = 42,

        /// <summary>
        /// 管理员干预（调整审批顺序）
        /// </summary>
        [Description("管理员干预（调整审批顺序）")]
        InterveneReorder = 43,

        /// <summary>
        /// 管理员干预（删除节点）
        /// </summary>
        [Description("管理员干预（删除节点）")]
        InterveneRemoveNode = 44,
    }
}